解决chromedriver启动错误:bind() failed: Cannot assign requested address (99) | 您所在的位置:网站首页 › ubuntu bind cannot assign › 解决chromedriver启动错误:bind() failed: Cannot assign requested address (99) |
记录于2021-02-22,OS为阿里云轻量应用服务器CentOS 7.3 [root@izbp112i9bshiu2ybihp3mz admin]# ./chromedriver Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 9515 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. [1614050923.823][SEVERE]: bind() failed: Cannot assign requested address (99) ChromeDriver was started successfully.先说结论:如果网络环境不需要用到ipv6,可以忽略此错误。该错误不会影响chromedriver 在ipv4下的运行。 配置IPv6地址可以解决此错误服务器是阿里云的轻量应用服务器,OS是CentOS 7.3 阿里云官方文档:配置IPv6地址,包括自动配置工具下载和手动配置方法 下载完成后得到工具ecs-util-ipv6,运行它,成功则返回如下信息: [root@izbp112i9bshiu2ybihp3mz admin]# chmod +x ecs-utils-ipv6 [root@izbp112i9bshiu2ybihp3mz admin]# ./ecs-utils-ipv6 [Info] ECS Utils IPv6 1.0.3. [Info] IPv6 Auto Config Begin... [Warn] get [00:16:3e:10:45:90] ipv6 metadata null [Warn] get [00:16:3e:10:45:90] prefix len metadata null [Warn] get [00:16:3e:10:45:90] ipv6 gateway metadata null [Info] Config eth0... [Done] IPv6 Auto Config Finished. [root@izbp112i9bshiu2ybihp3mz admin]# ifconfig|grep -i inet6 inet6 fe80::216:3eff:fe10:4590 prefixlen 64 scopeid 0x20 inet6 ::1 prefixlen 128 scopeid 0x10此时运行chromedriver,发现错误解决了: [root@izbp112i9bshiu2ybihp3mz admin]# ./chromedriver Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 9515 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully. 网上一些文章提到增加运行参数可解决此问题网上一些文章写到增加运行参数--verbose或者--whitelisted-ips解决此问题 --verbose:输出所有级别的日志用此参数可以得到错误的全部信息listen on IPv6 failed with error ERR_ADDRESS_INVALID [root@izbp112i9bshiu2ybihp3mz admin]# ./chromedriver -help | grep verbose --verbose log verbosely (equivalent to --log-level=ALL) --replayable (experimental) log verbosely and don't truncate long strings so that the log can be replayed. [root@izbp112i9bshiu2ybihp3mz admin]# ./chromedriver --verbose Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 9515 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. [1614051592.443][SEVERE]: bind() failed: Cannot assign requested address (99) [1614051592.443][INFO]: listen on IPv6 failed with error ERR_ADDRESS_INVALID ChromeDriver was started successfully. --whitelisted-ips和--allowed-ips在88版本的chromedriver的帮助信息中没有此参数,但是这个参数还可以使用: [root@izbp112i9bshiu2ybihp3mz admin]# ./chromedriver --version ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) [root@izbp112i9bshiu2ybihp3mz admin]# ./chromedriver -help | grep ips --allowed-ips comma-separated allowlist of remote IP addresses which are allowed to connect to ChromeDriver [root@izbp112i9bshiu2ybihp3mz admin]# ./chromedriver --whitelisted-ips Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 9515 All remote connections are allowed. Use an allowlist instead! Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully. ^C [root@izbp112i9bshiu2ybihp3mz admin]# ./chromedriver --whitelisted-ips=66.66.66.72,66.66.66.71 Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 9515 Remote connections are allowed by an allowlist (66.66.66.72,66.66.66.71). Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully.与--whitelisted-ips相近的有一个参数--allowed-ips,测试后发现作用一样的 [root@izbp112i9bshiu2ybihp3mz admin]# ./chromedriver --allowed-ips Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 9515 All remote connections are allowed. Use an allowlist instead! Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully. ^C [root@izbp112i9bshiu2ybihp3mz admin]# ./chromedriver --allowed-ips=66.66.66.72,66.66.66.71 Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 9515 Remote connections are allowed by an allowlist (66.66.66.72,66.66.66.71). Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully.增加这个参数后,确实不会出现bind() failed,原理不清楚 这个参数的作用:是否允许远程ip连接 只允许本地连接./chromedriver:Only local connections are allowed. 允许所有远程连接./chromedriver --allowed-ips:All remote connections are allowed. Use an allowlist instead! 只允许列表中的ip连接./chromedriver --allowed-ips=66.66.66.72,66.66.66.71:Remote connections are allowed by an allowlist (66.66.66.72,66.66.66.71). |
CopyRight 2018-2019 实验室设备网 版权所有 |